/**
 * 邮箱
 * @param {*} s
 */
export function isEmail(s) {
    return /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(
        s
    )
}

/**
 * 手机号码
 * @param {*} s
 */
export function isMobile(s) {
    return /^1[0-9]{10}$/.test(s)
}

/**
 * 电话号码
 * @param {*} s
 */
export function isPhone(s) {
    return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}

/**
 * URL地址
 * @param {*} s
 */
export function isURL(s) {
    return /^http[s]?:\/\/.*/.test(s)
}

/**
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
    return /^(https?:|mailto:|tel:)/.test(path)
}


// 页面中有使用
export function valitedLimitNumber(
    numVal,
    opts = {}
) {
    let {leftLength = 16, rightLength = 6, addLast = false} = opts;
      try {
        numVal = numVal.toString()
      } catch (error) {
        numVal += ''
      }
      let cleanedValue = numVal.replace(/[^0-9-.]/g, '')

      if(cleanedValue.includes("-") ){
        if(cleanedValue.lastIndexOf('-') != 0){
            cleanedValue =  cleanedValue.replace(/[^0-9.]/g, '')
        }
      }

      // 检查小数点
      let parts = cleanedValue.split('.')
      if (parts.length === 2) {
          if(rightLength === 0){
            return parts[0]
          }
          let endLastNum = parts[1][parts[1].length - 1]
  
          // 转换小数部分确保不超过rightLength位数
        //   parts[1] = parts[1].slice(0, rightLength)
        //   if (endLastNum > 4 && addLast) {
        //       parts[1] = Number(parts[1]) + 1 + ''
        //   }
          // 将整数部分控制在leftLength位以内
          parts[0] = parts[0].slice(0, leftLength)
          // 重新组合字符串
          cleanedValue = `${parts[0]}.${parts[1]}`
      } else if (parts.length > 2) {
        //   let endLastNum = parts[1][parts[1].length - 1]
        //   // 转换小数部分确保不超过rightLength位数
        //   parts[1] = parts[1].slice(0, rightLength)
        //   if (endLastNum > 4) {
        //       parts[1] = Number(parts[1]) + 1 + ''
        //   }
          // 有多余的小数点，保留第一个小数点之前的部分
          cleanedValue = parts[0] + '.' + parts[1]
      } else {
          if (cleanedValue[cleanedValue.length] == '.') {
              cleanedValue = cleanedValue.slice(0, leftLength + 1)
          } else {
              cleanedValue = cleanedValue.slice(0, leftLength)
          }
      }
      // 更新输入框的值
      return cleanedValue
  }

// 为了单独处理 右侧不四舍五入处理
  export function valitedLimitNumberNew(numVal, opts = {}) {
    let { leftLength = 16, rightLength = 6 } = opts;
    let cleanedValue = String(numVal).replace(/[^0-9.]/g, '');

    let parts = cleanedValue.split('.');
    let integerPart = parts[0].slice(0, leftLength);
    let decimalPart = parts.length > 1 ? parts[1].slice(0, rightLength) : '';

    // 处理小数点后多余的部分
    if (parts.length > 2) {
        // 有多余的小数点，只保留第一个小数点和其后的部分
        decimalPart = parts.slice(1).join('').slice(0, rightLength);
    }

    cleanedValue = decimalPart ? `${integerPart}.${decimalPart}` : integerPart;

    return cleanedValue;
}